package com.itheima.mapper;

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    List<User> findAllUsers();

    // 通过id查询到一个用户
    User selectById(int id);

    // 通过id删除一个用户
    void deleteById(int id);

    // 修改用户
    void update(User user);

    // 添加用户
    void add(User user);

    /**
     * 多条件查询
     *  * 参数接收
     *      1.散装参数: 如果方法中有多个参数，需要使用@Param("SQL参数占位符名称")
     *      2.对象参数: 对象的属性名称要和参数占位符名称一致
     *      3.Map集合参数: Map的键要和占位符名称一致
     */
    List<User> selectByCondition(@Param("username") String username, @Param("sex") String sex);
    List<User> selectByCondition(User user);
    List<User> selectByCondition(Map map);

    // 批量删除
    void deleteByIds(@Param("ids") int[] ids);
}
